package Javatest;

import java.util.Scanner;

public class test_6_14 {

    public static void main(String[] args) {
        //test1();
        //test2();
        //test3();
        test4();
    }

    public static void test1() {
        for(int i=1; ;i++) {
            double d = Math.random();
            if(d>0.999) {
                System.out.println("第"+i+"次产生了目标值,值为:"+d);
                break;
            }
        }
    }

    public static void test2() {
        //1.提示并接收用户输入的行数:
        System.out.println("请输入您要打印星星的行数:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        //2.开始打印图形
        //2.1外层循环控制打印的行数 i的取值范围:[1,n],一共n行
        for (int i = 1; i <= n; i++) {
            //2.2内层循环1
            //控制每行打印空格的个数 j的取值范围:[0,n-i),即1 2 3...
            for (int j = 0; j < n - i; j++) {
                System.out.print(" ");
            }
            //2.3内层循环2
            //控制每行打印星星的个数 k的取值范围:[1,2*i-1],即1 3 5 ...
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("*");
            }
            //2.4打印完本行所有内容后添加换行
            System.out.println();
        }
    }

    public static void test3() {
        //1.提示并接收用户要计算的自然数:
        System.out.println("请输出您要求和的自然数:");
        int n = new Scanner(System.in).nextInt();
        //2.定义一个变量用来保存最终求和的结果
        int sum=0;
        //3.循环获取每一位上的数
        while(n!=0){
            //4.求当前的个位数,并将个位数累加
            sum = sum + (n%10);
            //5.去掉刚刚累加过的最后一位数,得到新的整数
            //比如刚刚的十位就变成了现在的个位
            n=n/10;
        }
        //6.打印最终的结果:
        System.out.println(sum);
    }

    public static void test4() {
        //1.循环遍历1000以内的所有数
        for(int i=1;i<=1000;i++){
            //2.定义一个变量来保存求和的结果
            int sum = 0;
            //3.求i的因子
            for(int j=1;j<=i/2;j++){
                //4.判断是否能被整除
                if(i % j == 0){
                    //5.如果能整除,就是因子,因子需要累加
                    sum+=j;
                }
            }
            //6.如果因子累加之和为本轮判断的数,则当前数是完数,输出
            if(sum==i){
                System.out.println(i);

            }
        }
    }
}
